ROBOLAB: Mindstorms for Schools

BEN ERWIN

index1.html
Good afternoon. My name is Ben Erwin. I worked on the development of a LEGO Mindstorms software package called ROBOLAB when I worked at Tufts University. Today I am going to talk about both ROBOLAB and my book, "Creative Projects with LEGO Mindstorms". ROBOLAB is the graphical programming environment that is used to program robots that use the RCX, a microprocessor inside of a LEGO brick. (hold up RCX)

robolab.html
ROBOLAB was a joint development between our group at Tufts, LEGO Dacta, and National Instruments. National Instruments is a company based out of Texas that makes a graphical programming environment called LabVIEW, which has become the standard in graphical programming. We chose LabVIEW as the environment in which to create ROBOLAB because of its intuitive style of programming.

whatisrobotics.html
When we first begin teaching a robotics course to students, we begin by talking about all of the things that robots have in common, and their LEGO counterparts. For example, all robots have a computer, actuators, mechanics, power, and sensors. By viewing robots in this way, students then have the tools to be able to view other robotic devices in a similar fashion, and realize that all robotic things don't necessarily look like little cars that drive around the room. For example, by asking students to think about whether or not a microwave is a robotic device, the students begin to realize that the buttons they press on the microwave are touch sensors that send a signal to the microwaves processor -- that a microwave's door contains mechanical parts to open it, and tat the microwave needs power, and has an output - a lamp.

rcx.html
Now that you've seen a lot of what ROBOLAB can do, here is some more information about what the RCX can do. LEGO makes four different sensors for the RCX - touch, light, temperature, and rotation (pass them around the room with a motor - with an axle and wheel sticking through the rotation sensor), and DCP sensors can be used as well with the sensor adapter. Sensors such as pH, relative humidity, voltage, sound level in decibels, air pressure, and better temperature and rotation sensors are all made by DCP and calibrated for the RCX.

demo.html

rcx2.html
Some more technical information about the RCX... it can sample up to 100 to 150 times a second when collecting data, store up to 2000 points of data... it communicates via infrared, not only back and forth to the infrared transmitter, but two robots can also send messages to other via infrared. (Went back into ROBOLAB and write a quick program where one robot turns back and forth when it is receiving a message from the other RCX, but stays still when it does not [Mitch's 'dance' demo with the crickets]. The other robot just continually sends a message. )

robolab2.html, robolab3.html, robolab4.html
There are two main types of activities that one can do with the ROBOLAB software: robotics and data collection and analysis. On the left is a picture of a student robotics project. This student was in a robotics competition to navigate an obstacle course in the shortest amount of time, and he had accomplished it by programming his robot to navigate a line of black electrical tape using a light sensor. On the right is a picture of that same light sensor (hold up light sensor) - this time taped in a doorway to collect light data. When someone walks through the doorway, the change in reflected light will show up on the graph when the data is uploaded to the computer later on. Of course, there could be projects that combine these two types of activities, such as a robotic mars rover that collects data about its environment. Now I am going to go into the ROBOLAB software and show you these two environments. (Showed line follower program and demonstrated line follower on the table up front -- with Red Rover running so that people in the back could see it up on the screen from the video camera. Showed how the program is downloaded through the infrared transmitter. Also ran a light sensor collecting program and walked back and forth in front of the light sensor to get a good graph with dips in it. Then, I moved around two icons in the line following program to show them how a small change in algorithm makes a big change in robot behavior, and made the lightbug program. The lightbug is a bug that walks when you shine the flashlight at him but doesn't walk otherwise. I also passed around the walking bug with two touch sensors at this point to show multitasking - and showed the program up on the screen.)

demo.html

products.html
The two product strands of LEGO Dacta reflect these two types of activities, robotics and data analysis. In the ROBOLAB product line there are thematic kits in which students build models that all belong to a certain theme, such as an amusement park. There are also more open-ended sets with lots of pieces for team-based design challenges and competitions. The eLAB product line deals with curriculum for topics such as energy transformation and efficiency. There are products such as the LEGO solar panel for collecting energy and the LEGO capacitor for storing it.

pilotinventor.html
In addition to supporting two main types of activities, there are also two main programming environments in ROBOLAB - Pilot and Inventor. You saw an example of the pilot-style programming when I programmed the light sensor to collect data. In that program, I had merely chosen which sensor to use, how often to take data, and for how long, by clicking on large icons. You saw an example of the inventor style programming in the line-follwer program which was more like a flowchart. Now I'm going to show you the capabilities of Pilot and Inventor in a more in-depth manner. (Went to ROBOLAB again [gotta love Alt-Tab] and showed Pilot 1-3 in Programmer and Programming Level 5 in Investigator, including G-Code. Showed a LabVIEW data analysis program using G-code.)

demo.html

robolabvs.html
People have created many different programming environments for the RCX that mirror other languages like C, TCL, Smalltalk, LOGO, Basic, and Java, and LEGO also released a software developers kit which allows you to create your own programs with Visual Basic. Like all of these languages, ROBOLAB can do all of the standard input/output, looping, conditionals, if-statements, variables, timers, collecting data, and directly controlling the RCX from the computer. ROBOLAB goes further than these other environments, however, by including such features as being able to have robots communicate over the internet -- for example we made a LEGO internet fax machine with a light sensor scanner and pen plotter -- and the ability to publish all of your graphs, pictures, text, and programs as a series of HTML pages with JPG images at the push of a button. ROBOLAB, as you saw, also includes its own graphing capability and the use of LabVIEW for high-end data analysis such as Fourier transforms, etc. (went into ROBOLAB and showed the example internet communication program)

robots.html robots2.html robots3.html
The NASA robot Sojourner that went to Mars used LabVIEW on its mission. A LEGO Rover uses ROBOLAB - which looks a lot like LabVIEW. So students are definitely learning concepts and skills that they can use later on in life.

index2.html
In addition to having worked at Tufts, I was also a teacher. This picture shows two of my sixth grade students from a Technology Education class holding up their robot that they built with the RCX. Their robot has two motors and a light sensor, and they programmed it to stay within a black square of electrical tape on their table. As you can see by the looks on their faces - robotics projects like this are definitely fun.

examples2.html
When we were working with students early on in ROBOLAB's development, I wanted to emphasize that robots could be more than things that looked like cars, not only to get the students to think more creatively, but also for the girls that were not as interested in creating car-like robots. I took these students to a museum that had kinetic sculpture examples - sculptures that used gears, levers, and cams - to inspire them. On the right is an image of a kinetic sculpture that one girl made using cams to create a clockwork-like intermittent motion in the rest of the piece. On the left is a picture of a bubble machine that I created. (ran bubble machine - sometimes wrote a program first where the bubble machine would only turn on if the sound level was high enough or something like that)

fll.html
There are many different types of robotic competitions that happen in schools around the world. You might have heard of the robotic soccer event that happens every year. There is also the Robotic Olympiad which is happening in Hong Kong and some other cities. In the U.S., Canada, and Singapore, U.S. FIRST runs a competition called FIRST LEGO League. FIRST LEGO League is a competition for students aged 9-14 in which they work after-school in groups to create a robot that can navigate a certain playing field. As I showed you at the beginning of the talk, one such group used a light sensor to navigate the black line around this particular playing field. The robot that is shown here in the picture is using a touch sensor instead. When the robot bumps into the wall, it backs up and turns before driving on to the next wall. One of the important lessons that students learn about engineering is that there is never one single right answer, when too often in school there is only one right answer.

examplesc.html
Here are a couple of examples at the university level. On the left is an inverted-pendulum that is kept balanced by a car underneath that can move back and forth. An angle sensor determines whether the pendulum is kept balanced or not. On the right is an experiment to measure the flow rate of water through a cylinder.

examples4.html
Here is an intelligent house that some students built at an after-school center. This was a final project that some students worked on together after they were all comfortable with the basics. Some students were only interested in the architecture of the house, while others were interested in the programming or mechanics. They worked together to create a house which had a working doorbell, elevator, porchlight, and a lighting system.

examples5.html
These are a couple of examples of systems engineering projects that were completed by teachers at workshops. The first shows an airport where the runway lights were programmed to turn on after the lights in the room go out. The picture on the right shows a mountain ski resort where lego people ride a gondola, ski-lift, and tow rope up the mountain, all progammed with ROBOLAB.

examples6.html
(sometimes skipped to save time) This is a life-size mini-golf course that students set-up in the aisles of the classroom. Each group of students was responsible for creating their mini-golf hole. The windmill on the left scoops up the ball and deposits it into a tube. The creation on the right spins around a series of practice golf balls to eject the incoming ball.

examples7.html
This last example is called the robotic zoo. Groups of students selected an animal that they wanted to research, and created their robotic animal to interact with the environment of the zoo somehow. Communication between groups was fostered by creating one large zoo. For example, two groups decided to make similar lizards that could interact with each other. The lizards chased each other, and when they bumped into each other, the touch sensor could sense it.

book.html
Talk about the learning story concept, etc.

book2.html
bubble machine example

demo.html

urls.html